package com.wzk.canalsync.utils;

import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

/**
 * @author wangzikang
 */
//文件操作
public class FileUtils {

    // 删除目录下所有内容（包括子目录和文件）
    public static void deleteDirectoryContents(Path directory) throws IOException {
        // 使用 Files.walkFileTree 遍历目录中的所有文件和子目录
        Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                // 删除文件
                Files.delete(file);
                return FileVisitResult.CONTINUE;
            }

            @Override
            public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
                // 删除空目录
                Files.delete(dir);
                return FileVisitResult.CONTINUE;
            }
        });
    }

}
